Impala SQL হল অ্যাপাচি ইমপালার ব্যবহারকারীর ইন্টারফেস যা SQL (Structured Query Language) ব্যবহার করে ডেটা প্রক্রিয়া, বিশ্লেষণ, এবং ম্যানিপুলেশন করতে সাহায্য করে। Impala SQL কোয়েরি লিখে হাডুপ ক্লাস্টারে থাকা ডেটার ওপর দ্রুত এবং কার্যকরভাবে কাজ করা সম্ভব। এর মাধ্যমে আপনি হাডুপ ডেটাসেট থেকে ডেটা এক্সট্র্যাক্ট, ইনসার্ট, আপডেট বা ডিলিট করতে পারেন।
Impala SQL এর মৌলিক বৈশিষ্ট্য
১. SQL স্ট্যান্ডার্ড সাপোর্ট
Impala SQL সম্পূর্ণ SQL স্ট্যান্ডার্ড সমর্থন করে, অর্থাৎ আপনি পরিচিত SQL সিনট্যাক্স ব্যবহার করতে পারবেন। এটি JOIN, GROUP BY, HAVING, ORDER BY এবং অন্যান্য SQL ফিচারের মাধ্যমে ডেটার ওপর জটিল কোয়েরি চালাতে সক্ষম।
২. ইন-মেমরি প্রসেসিং
Impala SQL ইন-মেমরি প্রসেসিং ব্যবহার করে, যার ফলে কোয়েরি দ্রুত চালানো সম্ভব। এটি ডিস্কের পরিবর্তে RAM ব্যবহার করে কোয়েরি এক্সিকিউট করে, ফলে টাইমিং দ্রুত হয়।
৩. প্যারালাল প্রসেসিং
Impala কোয়েরি একাধিক সার্ভার এবং প্রোসেসরের মধ্যে ভাগ করে কাজ করতে পারে। এটি একাধিক নোডে কোয়েরি এক্সিকিউশন প্যারালালি (parallel) প্রক্রিয়া করে, যার ফলে এটি আরও দ্রুততর হয়।
Impala SQL কোয়েরির মৌলিক ধরন
১. SELECT কোয়েরি
SELECT কোয়েরি ব্যবহার করে ডেটা রিট্রিভ (retrieve) করা হয়। এটি Impala SQL এর সবচেয়ে সাধারণ কোয়েরি যা ডেটার মধ্যে পছন্দের ফিল্ড (field) বা কলাম (column) চয়ন করতে ব্যবহার করা হয়।
SELECT column1, column2 FROM tablename;
২. WHERE ক্লজ
WHERE ক্লজ ব্যবহৃত হয় কোনো নির্দিষ্ট শর্তের ভিত্তিতে ডেটা ফিল্টার (filter) করতে। এটি বিশেষভাবে ডেটার মধ্যে নির্দিষ্ট মান (value) বা শর্ত (condition) অনুসারে কোয়েরি চালানোর জন্য ব্যবহৃত হয়।
SELECT * FROM tablename WHERE column1 = 'value';
৩. GROUP BY ক্লজ
GROUP BY ক্লজ ব্যবহার করে আপনি ডেটাকে গ্রুপ (group) করতে পারেন এবং প্রতিটি গ্রুপের ওপর অ্যাগ্রিগেট (aggregate) ফাংশন প্রয়োগ করতে পারেন। এটি সাধারণত COUNT, SUM, AVG, MIN, MAX এর মতো ফাংশনগুলির সাথে ব্যবহার করা হয়।
SELECT column1, COUNT(*) FROM tablename GROUP BY column1;
৪. HAVING ক্লজ
HAVING ক্লজ GROUP BY কোয়েরির পর শর্ত প্রযোজ্য করার জন্য ব্যবহৃত হয়। এটি সাধারণত অ্যাগ্রিগেট ফাংশন (যেমন COUNT বা SUM) এর ওপর শর্ত প্রযোজ্য করতে ব্যবহৃত হয়।
SELECT column1, COUNT(*) FROM tablename GROUP BY column1 HAVING COUNT(*) > 10;
৫. JOIN অপারেশন
Impala SQL কোয়েরিতে একাধিক টেবিলকে একত্রিত করার জন্য JOIN ব্যবহার করা হয়। বিভিন্ন ধরনের JOIN রয়েছে, যেমন INNER JOIN, LEFT JOIN, RIGHT JOIN ইত্যাদি।
INNER JOIN উদাহরণ:
SELECT a.column1, b.column2
FROM table1 a
INNER JOIN table2 b ON a.id = b.id;
৬. ORDER BY ক্লজ
ORDER BY ক্লজ ব্যবহার করে আপনি কোয়েরি ফলাফলকে কোনো নির্দিষ্ট কলামের ওপর ভিত্তি করে সাজাতে পারেন (ascending বা descending অর্ডারে)।
SELECT column1, column2 FROM tablename ORDER BY column1 DESC;
Impala SQL এর অ্যাগ্রিগেট ফাংশন
Impala SQL বিভিন্ন অ্যাগ্রিগেট ফাংশন সমর্থন করে, যেগুলি ডেটার ওপর গণনা, গড় বা অন্যান্য মেট্রিক্স বের করতে ব্যবহৃত হয়। কিছু সাধারণ অ্যাগ্রিগেট ফাংশন হল:
COUNT: একটি কলামে মোট রেকর্ডের সংখ্যা গণনা করে।
SELECT COUNT(*) FROM tablename;SUM: একটি কলামের মোট যোগফল বের করে।
SELECT SUM(column1) FROM tablename;AVG: একটি কলামের গড় মান বের করে।
SELECT AVG(column1) FROM tablename;MIN এবং MAX: একটি কলামের সর্বনিম্ন এবং সর্বোচ্চ মান বের করে।
SELECT MIN(column1), MAX(column1) FROM tablename;
Impala SQL এর পারফরম্যান্স টিউনিং
Impala SQL কোয়েরি চালানোর সময় দ্রুত ফলাফল পেতে কিছু টিউনিং পদ্ধতি অনুসরণ করা যেতে পারে:
- প্রপার ইনডেক্সিং: ডেটাবেসে ইনডেক্সিং নিশ্চিত করা উচিত, যাতে কোয়েরি দ্রুত সম্পন্ন হয়।
- Partitioning: ডেটার পার্টিশন ব্যবহার করা, যাতে কোয়েরি নির্দিষ্ট অংশের ডেটা এক্সেস করতে পারে এবং সম্পাদন দ্রুত হয়।
- Parquet ফরম্যাট: ডেটা পারকেট ফরম্যাটে সঞ্চিত থাকলে, এটি ডেটা স্ক্যানিংয়ের সময় দ্রুত ফলাফল প্রদান করে।
এইভাবে, Impala SQL এর মাধ্যমে আপনি বড় ডেটাসেটের ওপর কার্যকরভাবে বিশ্লেষণ ও পরিচালনা করতে পারবেন। Impala SQL ব্যবহার করে ডেটার ওপর দ্রুত কোয়েরি এক্সিকিউট করা সম্ভব, যা হাডুপ পরিবেশে দ্রুত ফলাফল অর্জন করতে সহায়ক।
Apache Impala একটি SQL-ভিত্তিক ডেটাবেস ইঞ্জিন, যা হাডুপ (Hadoop) পরিবেশে দ্রুত ডেটা বিশ্লেষণ করার জন্য ব্যবহৃত হয়। Impala SQL এর স্ট্যান্ডার্ড সিনট্যাক্স এবং কোয়েরি স্ট্রাকচার অনুসরণ করে, যা হাডুপ পরিবেশের উপর SQL-ভিত্তিক কোয়েরি চালানোর জন্য উপযোগী।
Impala SQL সিনট্যাক্স
Impala SQL সিনট্যাক্স স্ট্যান্ডার্ড SQL এর মতোই, তবে কিছু বিশেষ বৈশিষ্ট্য রয়েছে যা Impala-কে বড় ডেটা সেটে কাজ করতে সহায়ক করে তোলে। Impala SQL কোয়েরি বিভিন্ন ধরনের ডেটাবেস অপারেশন যেমন ডেটা নির্বাচন (SELECT), ইনসার্ট (INSERT), আপডেট (UPDATE), ডিলেট (DELETE), এবং ডেটাবেস ম্যানেজমেন্টের জন্য ব্যবহৃত হয়।
১. SELECT কোয়েরি
SELECT স্টেটমেন্ট দিয়ে ডেটাবেস থেকে ডেটা নির্বাচন করা হয়। এটি Impala SQL এর সবচেয়ে মৌলিক কোয়েরি।
SELECT column1, column2
FROM table_name
WHERE condition;
- column1, column2: যে কলামগুলোর ডেটা আপনি নির্বাচন করতে চান।
- table_name: টেবিলের নাম যেখানে থেকে ডেটা নির্বাচিত হবে।
- condition: ফিল্টার করার জন্য শর্ত।
২. INSERT INTO কোয়েরি
INSERT INTO স্টেটমেন্ট দিয়ে টেবিলে নতুন ডেটা ইনসার্ট করা হয়।
INSERT INTO table_name (column1, column2)
VALUES (value1, value2);
৩. UPDATE কোয়েরি
UPDATE স্টেটমেন্ট ব্যবহার করে কোনো টেবিলের ডেটা পরিবর্তন করা যায়।
UPDATE table_name
SET column1 = value1, column2 = value2
WHERE condition;
৪. DELETE কোয়েরি
DELETE স্টেটমেন্ট দিয়ে টেবিল থেকে ডেটা মুছে ফেলা হয়।
DELETE FROM table_name
WHERE condition;
৫. CREATE TABLE কোয়েরি
Impala এ নতুন টেবিল তৈরি করতে CREATE TABLE স্টেটমেন্ট ব্যবহার করা হয়।
CREATE TABLE table_name (
column1 datatype,
column2 datatype
);
Impala SQL কোয়েরি স্ট্রাকচার
Impala SQL কোয়েরি স্ট্রাকচার সাধারণত কয়েকটি অংশে বিভক্ত থাকে। প্রতিটি অংশ ডেটা প্রসেসিংয়ের জন্য গুরুত্বপূর্ণ ভূমিকা পালন করে।
১. SELECT Clause
SELECT ক্লজ হলো মূল অংশ যেখানে আপনি যে কলামগুলো নির্বাচন করতে চান তা উল্লেখ করেন।
SELECT column1, column2
FROM table_name;
২. FROM Clause
FROM ক্লজ ডেটা নির্বাচনের জন্য যেই টেবিল বা ডেটাসেট ব্যবহার করা হবে তা নির্ধারণ করে।
SELECT column1
FROM table_name;
৩. WHERE Clause
WHERE ক্লজ ব্যবহার করে নির্দিষ্ট শর্তে ডেটা ফিল্টার করা হয়। এটি কোয়েরি ফলাফলকে আরও সুনির্দিষ্ট এবং সীমাবদ্ধ করে।
SELECT column1
FROM table_name
WHERE condition;
৪. GROUP BY Clause
GROUP BY ক্লজ ব্যবহৃত হয় ডেটাকে গ্রুপ করতে। এটি সাধারণত স্যাম্পলিং, গড় (average), বা মোট (sum) হিসাব করার জন্য ব্যবহার হয়।
SELECT column1, COUNT(*)
FROM table_name
GROUP BY column1;
৫. ORDER BY Clause
ORDER BY ক্লজ ব্যবহার করে ডেটাকে একটি নির্দিষ্ট ক্রমে সাজানো যায় (অ্যাসেন্ডিং বা ডেসেন্ডিং অর্ডারে)।
SELECT column1
FROM table_name
ORDER BY column1 DESC;
৬. LIMIT Clause
LIMIT ক্লজের মাধ্যমে, আপনি কোয়েরি থেকে নির্দিষ্ট সংখ্যক রেকর্ড ফিরিয়ে আনতে পারেন।
SELECT column1
FROM table_name
LIMIT 10;
Impala SQL-এ যোগ্য কিছু বিশেষ ফিচার
১. JOIN অপারেশন
Impala SQL বিভিন্ন টেবিলের মধ্যে ডেটা মেলাতে JOIN অপারেশন ব্যবহার করা হয়।
SELECT a.column1, b.column2
FROM table_a a
JOIN table_b b ON a.id = b.id;
২. Aggregation Functions
Impala SQL কোয়েরিতে অ্যাগ্রিগেশন ফাংশন ব্যবহার করে একত্রিত ফলাফল পাওয়া যায়, যেমন SUM, AVG, COUNT, MAX, MIN ইত্যাদি।
SELECT SUM(column1)
FROM table_name;
৩. Subqueries
Impala SQL এ সাব-কোয়েরি (Subquery) ব্যবহার করে একটি কোয়েরির ফলাফল অন্য কোয়েরিতে ব্যবহার করা যায়।
SELECT column1
FROM table_name
WHERE column2 = (SELECT MAX(column2) FROM table_name);
সারাংশ
Impala SQL সিনট্যাক্স এবং কোয়েরি স্ট্রাকচার হাডুপ (Hadoop) পরিবেশে ডেটার উপর কার্যকরভাবে বিশ্লেষণ ও প্রক্রিয়াকরণ চালাতে সহায়তা করে। SQL এর স্ট্যান্ডার্ড সিনট্যাক্স অনুসরণ করার ফলে, এটি ব্যবহারকারীদের জন্য পরিচিত এবং সহজবোধ্য করে তোলে। Impala-র বিভিন্ন ফিচার যেমন JOIN, Aggregation Functions, এবং Subqueries ডেটা বিশ্লেষণ এবং প্রসেসিং আরও শক্তিশালী করে তোলে, যা বড় ডেটা সেটের দ্রুত বিশ্লেষণের জন্য উপযোগী।
Data Definition Language (DDL) হলো SQL-এর একটি অংশ যা ডেটাবেস অবকাঠামো এবং স্ট্রাকচার নির্ধারণ করতে ব্যবহৃত হয়। Impala-এ DDL স্টেটমেন্টগুলি ডেটাবেসের টেবিল, ভিউ, পার্টিশন ইত্যাদি তৈরি, সংশোধন এবং মুছে ফেলতে ব্যবহৃত হয়। এখানে Impala-এ DDL স্টেটমেন্টগুলির কিছু গুরুত্বপূর্ণ ব্যবহার আলোচনা করা হলো।
১. CREATE DATABASE
CREATE DATABASE স্টেটমেন্ট ব্যবহার করে একটি নতুন ডেটাবেস তৈরি করা হয়। একটি ডেটাবেস হলো ডেটার সংগ্রহস্থল, যেখানে টেবিল এবং অন্যান্য অবজেক্ট রাখা হয়।
উদাহরণ:
CREATE DATABASE my_database;
এটি my_database নামে একটি নতুন ডেটাবেস তৈরি করবে।
ডেটাবেস পাথ সহ তৈরি:
CREATE DATABASE my_database LOCATION '/user/hadoop/my_database';
এটি ডেটাবেসটি নির্দিষ্ট HDFS পাথ /user/hadoop/my_database-এ তৈরি করবে।
২. DROP DATABASE
DROP DATABASE স্টেটমেন্ট ব্যবহার করে একটি ডেটাবেস মুছে ফেলা হয়। ডেটাবেস মুছে ফেললে তার সকল টেবিল এবং ডেটাও মুছে যায়।
উদাহরণ:
DROP DATABASE my_database;
এটি my_database ডেটাবেস এবং তার অধীনে থাকা সকল অবজেক্ট মুছে ফেলবে।
CASCADE অপশন ব্যবহার:
DROP DATABASE my_database CASCADE;
CASCADE ব্যবহার করলে ডেটাবেসের সঙ্গে সংশ্লিষ্ট সমস্ত টেবিল এবং ডেটা মুছে যাবে।
৩. CREATE TABLE
CREATE TABLE স্টেটমেন্ট ব্যবহার করে একটি নতুন টেবিল তৈরি করা হয়। এতে টেবিলের কলাম এবং তাদের ডেটা টাইপ নির্ধারণ করা হয়।
উদাহরণ:
CREATE TABLE my_table (
id INT,
name STRING,
age INT
);
এটি my_table নামে একটি টেবিল তৈরি করবে, যার মধ্যে তিনটি কলাম: id, name, এবং age।
পার্টিশনযুক্ত টেবিল তৈরি:
CREATE TABLE my_table (
id INT,
name STRING,
age INT
)
PARTITIONED BY (year INT, month INT);
এটি year এবং month কলামের ভিত্তিতে পার্টিশন করা টেবিল তৈরি করবে।
টেবিল ফাইল ফরম্যাট নির্ধারণ:
CREATE TABLE my_table (
id INT,
name STRING,
age INT
)
STORED AS PARQUET;
এটি PARQUET ফরম্যাটে টেবিল তৈরি করবে, যা ইফিসিয়েন্ট ডেটা স্টোরেজ এবং দ্রুত প্রসেসিংয়ের জন্য উপযুক্ত।
৪. ALTER TABLE
ALTER TABLE স্টেটমেন্ট ব্যবহার করে একটি বিদ্যমান টেবিলের স্ট্রাকচার পরিবর্তন করা যায়। উদাহরণস্বরূপ, টেবিলের নতুন কলাম যোগ করা, পার্টিশন পরিবর্তন করা ইত্যাদি।
নতুন কলাম যোগ করা:
ALTER TABLE my_table ADD COLUMNS (email STRING);
এটি my_table টেবিলে email নামক একটি নতুন কলাম যোগ করবে।
কলাম ড্রপ করা:
ALTER TABLE my_table DROP COLUMN email;
এটি email কলামটি my_table টেবিল থেকে মুছে ফেলবে।
টেবিল নাম পরিবর্তন:
ALTER TABLE my_table RENAME TO new_table;
এটি my_table টেবিলের নাম পরিবর্তন করে new_table রাখবে।
৫. DROP TABLE
DROP TABLE স্টেটমেন্ট ব্যবহার করে একটি টেবিল মুছে ফেলা হয়। এই স্টেটমেন্টটি টেবিল এবং তার সমস্ত ডেটা মুছে ফেলে।
উদাহরণ:
DROP TABLE my_table;
এটি my_table টেবিল এবং তার ডেটা মুছে ফেলবে।
৬. CREATE VIEW
CREATE VIEW স্টেটমেন্ট ব্যবহার করে একটি ভিউ তৈরি করা হয়। ভিউ হলো একটি ভার্চুয়াল টেবিল, যা একটি বা একাধিক টেবিল থেকে ডেটা নির্বাচন করে তৈরি করা হয়।
উদাহরণ:
CREATE VIEW my_view AS
SELECT id, name FROM my_table WHERE age > 30;
এটি my_view নামে একটি ভিউ তৈরি করবে, যেখানে my_table থেকে বয়স ৩০-এর বেশি এমন ব্যবহারকারীদের id এবং name থাকবে।
৭. DROP VIEW
DROP VIEW স্টেটমেন্ট ব্যবহার করে একটি ভিউ মুছে ফেলা হয়।
উদাহরণ:
DROP VIEW my_view;
এটি my_view ভিউটি মুছে ফেলবে।
৮. CREATE PARTITION
CREATE PARTITION স্টেটমেন্ট ব্যবহার করে টেবিলের জন্য নতুন পার্টিশন তৈরি করা হয়।
উদাহরণ:
CREATE TABLE my_table (
id INT,
name STRING,
age INT
)
PARTITIONED BY (year INT, month INT);
CREATE PARTITION my_table PARTITION (year=2024, month=12);
এটি my_table টেবিলের জন্য ২০২৪ সালের ডিসেম্বর মাসের একটি নতুন পার্টিশন তৈরি করবে।
৯. DROP PARTITION
DROP PARTITION স্টেটমেন্ট ব্যবহার করে একটি নির্দিষ্ট পার্টিশন মুছে ফেলা হয়।
উদাহরণ:
DROP PARTITION my_table PARTITION (year=2024, month=12);
এটি my_table টেবিলের ২০২৪ সালের ডিসেম্বর মাসের পার্টিশনটি মুছে ফেলবে।
সারাংশ
Impala-তে DDL স্টেটমেন্টগুলো ডেটাবেস এবং টেবিলের স্ট্রাকচার এবং ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। এগুলো ডেটাবেস তৈরি, পরিবর্তন এবং মুছে ফেলা থেকে শুরু করে, টেবিলের স্ট্রাকচার পরিবর্তন, নতুন ভিউ তৈরি বা পার্টিশন ম্যানেজমেন্ট পর্যন্ত বিস্তৃত। DDL স্টেটমেন্টগুলি ব্যবহারকারীদের তাদের ডেটাবেস এবং টেবিলের ডিজাইন এবং কার্যকারিতা সহজেই কাস্টমাইজ করতে সহায়তা করে।
Apache Impala একটি SQL ভিত্তিক ডেটাবেস ইঞ্জিন, যা ডেটা ম্যানিপুলেশন এবং বিশ্লেষণের জন্য ব্যবহৃত হয়। Data Manipulation Language (DML) Statements ব্যবহার করে ডেটাবেসের মধ্যে ডেটা সংশোধন বা পরিবর্তন করা যায়। Impala SQL-এ DML কমান্ডগুলো ব্যবহার করে আমরা ডেটা সন্নিবেশ (Insert), নির্বাচন (Select), আপডেট (Update), এবং মুছে ফেলা (Delete) কার্যক্রম সম্পাদন করতে পারি।
DML Statements এর ধরন
১. SELECT Statement
SELECT স্টেটমেন্টের মাধ্যমে ডেটাবেস থেকে ডেটা নির্বাচন করা হয়। এটি সবচেয়ে সাধারণ এবং গুরুত্বপূর্ণ DML কমান্ড, যা ডেটার বিভিন্ন তথ্য দেখতে ব্যবহৃত হয়।
SELECT column1, column2
FROM table_name
WHERE condition;
উদাহরণ:
SELECT name, age
FROM employees
WHERE department = 'Sales';
এখানে employees টেবিল থেকে 'Sales' ডিপার্টমেন্টের কর্মচারীদের নাম এবং বয়স নির্বাচিত হচ্ছে।
২. INSERT INTO Statement
INSERT INTO স্টেটমেন্ট ব্যবহার করে একটি টেবিলের মধ্যে নতুন ডেটা যোগ করা হয়।
INSERT INTO table_name (column1, column2)
VALUES (value1, value2);
উদাহরণ:
INSERT INTO employees (name, age, department)
VALUES ('John Doe', 30, 'Sales');
এই স্টেটমেন্টটি employees টেবিলের মধ্যে নতুন কর্মচারীর তথ্য সন্নিবেশ করে।
৩. UPDATE Statement
UPDATE স্টেটমেন্টের মাধ্যমে ডেটাবেসে বিদ্যমান রেকর্ড আপডেট করা হয়। এটি একটি নির্দিষ্ট শর্তে ডেটা পরিবর্তন করতে ব্যবহৃত হয়।
UPDATE table_name
SET column1 = value1, column2 = value2
WHERE condition;
উদাহরণ:
UPDATE employees
SET age = 31
WHERE name = 'John Doe';
এখানে 'John Doe' নামক কর্মচারীর বয়স ৩০ থেকে ৩১-এ পরিবর্তিত হচ্ছে।
৪. DELETE Statement
DELETE স্টেটমেন্ট ব্যবহার করে টেবিল থেকে ডেটা মুছে ফেলা হয়। এটি একটি নির্দিষ্ট শর্তে রেকর্ড মুছে দিতে ব্যবহৃত হয়।
DELETE FROM table_name
WHERE condition;
উদাহরণ:
DELETE FROM employees
WHERE name = 'John Doe';
এই স্টেটমেন্টটি employees টেবিল থেকে 'John Doe' নামক কর্মচারীকে মুছে ফেলবে।
DML Statements এর মূল বিষয়সমূহ
- কোয়ারি পারফরম্যান্স: Impala SQL স্টেটমেন্টগুলি দ্রুত এবং কার্যকরী হয়, কারণ এটি ইন-মেমরি প্রসেসিং এবং প্যারালাল প্রসেসিং ব্যবহার করে।
- ACID সমর্থন: Impala আপডেট এবং ডিলিট অপারেশনের ক্ষেত্রে সম্পূর্ণ ACID (Atomicity, Consistency, Isolation, Durability) গ্যারান্টি দেয় না। তবে, এটি দ্রুত ডেটা বিশ্লেষণের জন্য উপযুক্ত।
- ডিস্ট্রিবিউটেড প্রসেসিং: Impala ডেটা ম্যানিপুলেশনে ডিস্ট্রিবিউটেড প্রসেসিং ব্যবহার করে, যা একাধিক সার্ভারের মাধ্যমে কার্যক্রম দ্রুত সম্পাদন করতে সাহায্য করে।
সারাংশ
Apache Impala-এর DML স্টেটমেন্টগুলি ডেটাবেসে ডেটা নির্বাচন, সন্নিবেশ, আপডেট এবং মুছে ফেলতে সাহায্য করে। SELECT, INSERT INTO, UPDATE, এবং DELETE এই চারটি প্রধান DML স্টেটমেন্ট ব্যবহার করে ডেটাবেসের ডেটা কার্যকরভাবে ম্যানিপুলেট করা সম্ভব। Impala-এর কার্যকরী পারফরম্যান্সের জন্য এটি বেশ জনপ্রিয়, বিশেষত বড় ডেটা বিশ্লেষণের জন্য।
Impala ব্যবহার করে SQL (Structured Query Language) এর মাধ্যমে ডেটা বিশ্লেষণ করা সহজ এবং কার্যকরী। এর মধ্যে SELECT কোয়েরি, যেখানে ডেটার নির্দিষ্ট অংশ বা সম্পূর্ণ ডেটা বের করা হয়, এবং Aggregation Functions, যা ডেটার ওপর বিভিন্ন গণনা বা সারাংশ তৈরি করে, দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য।
Basic SELECT Queries
SELECT কোয়েরি ব্যবহার করে আপনি Impala তে টেবিল থেকে ডেটা এক্সট্র্যাক্ট (extract) করতে পারেন। এটি SQL-এর সবচেয়ে মৌলিক এবং গুরুত্বপূর্ণ কোয়েরি।
১. Simple SELECT Query
একটি সাধারণ SELECT কোয়েরি ব্যবহার করে আপনি একটি টেবিলের সব তথ্য বের করতে পারেন।
SELECT * FROM employees;
এখানে, * নির্দেশ করে যে আপনি সমস্ত কলাম দেখতে চান এবং employees হলো টেবিলের নাম।
২. Specific Columns SELECT Query
যদি আপনি টেবিলের নির্দিষ্ট কলামগুলি দেখতে চান, তাহলে এইভাবে কোয়েরি লিখতে হবে:
SELECT first_name, last_name FROM employees;
এখানে, first_name এবং last_name হলো টেবিলের কলাম নাম এবং আপনি এই কলামগুলির ডেটা বের করতে চাচ্ছেন।
৩. SELECT Query with WHERE Clause
যদি আপনি নির্দিষ্ট শর্তে ডেটা দেখতে চান, তাহলে WHERE ক্লজ ব্যবহার করতে হবে। উদাহরণস্বরূপ:
SELECT * FROM employees WHERE department = 'Sales';
এখানে, department = 'Sales' শর্তের মাধ্যমে শুধু "Sales" বিভাগের কর্মীদের তথ্য বের করা হবে।
৪. SELECT Query with LIMIT Clause
কোনো নির্দিষ্ট সংখ্যক রেকর্ড পেতে LIMIT ক্লজ ব্যবহার করা হয়:
SELECT * FROM employees LIMIT 10;
এটি প্রথম ১০টি রেকর্ড দেখাবে।
Aggregation Functions
Impala তে Aggregation Functions ব্যবহৃত হয় ডেটা সেটের ওপর গাণিতিক বা সারাংশমূলক কাজ করার জন্য। এগুলোর মধ্যে প্রধান কিছু হলো COUNT, SUM, AVG, MIN, এবং MAX। এই ফাংশনগুলো সাধারণত GROUP BY ক্লজের সঙ্গে ব্যবহার করা হয়, কিন্তু এককভাবে ও ব্যবহার করা যেতে পারে।
১. COUNT Function
COUNT ফাংশন ব্যবহার করে আপনি কোনো কলামে মোট রেকর্ডের সংখ্যা বের করতে পারেন।
SELECT COUNT(*) FROM employees;
এটি employees টেবিলের মোট রেকর্ড সংখ্যা দেখাবে।
২. SUM Function
SUM ফাংশন ব্যবহার করে আপনি একটি কলামে সব মানের যোগফল বের করতে পারেন। উদাহরণস্বরূপ:
SELECT SUM(salary) FROM employees;
এটি employees টেবিলের salary কলামের সব মান যোগফল বের করবে।
৩. AVG Function
AVG ফাংশন ব্যবহার করে আপনি একটি কলামের গড় (average) মান বের করতে পারেন।
SELECT AVG(salary) FROM employees;
এটি employees টেবিলের salary কলামের গড় মান দেখাবে।
৪. MIN Function
MIN ফাংশন ব্যবহার করে একটি কলামের সর্বনিম্ন মান বের করা যায়। উদাহরণস্বরূপ:
SELECT MIN(salary) FROM employees;
এটি employees টেবিলের salary কলামের সর্বনিম্ন মান দেখাবে।
৫. MAX Function
MAX ফাংশন ব্যবহার করে একটি কলামের সর্বোচ্চ মান বের করা যায়। উদাহরণ:
SELECT MAX(salary) FROM employees;
এটি employees টেবিলের salary কলামের সর্বোচ্চ মান দেখাবে।
GROUP BY Clause with Aggregation Functions
GROUP BY ক্লজ ব্যবহৃত হয় ডেটাকে কিছু নির্দিষ্ট কলামের ভিত্তিতে গ্রুপিং করার জন্য এবং তারপর অ্যাগ্রিগেশন ফাংশনগুলির সাথে কাজ করতে। উদাহরণস্বরূপ:
১. Grouping by a Column
যদি আপনি একটি কলামের ভিত্তিতে ডেটা গ্রুপ করতে চান এবং তার ওপর অ্যাগ্রিগেশন ফাংশন প্রয়োগ করতে চান, তাহলে এইভাবে কোয়েরি লিখতে হবে:
SELECT department, AVG(salary) FROM employees GROUP BY department;
এটি employees টেবিলের প্রতিটি department অনুযায়ী গড় বেতন দেখাবে।
২. Grouping by Multiple Columns
একাধিক কলামের ভিত্তিতে গ্রুপিং করতে পারবেন:
SELECT department, job_title, AVG(salary) FROM employees GROUP BY department, job_title;
এটি department এবং job_title এর ভিত্তিতে গড় বেতন দেখাবে।
এভাবে, Apache Impala তে Basic SELECT Queries এবং Aggregation Functions ব্যবহার করে আপনি ডেটার ওপর বিস্তারিত বিশ্লেষণ এবং কার্যকরী ফলাফল পেতে পারেন।
Read more